package day6;

import org.junit.Test;

public class Demo2 {
	// 多态和面向接口编程,有一定的好处？
	@Test
	public void test2() {
		Add add = new Add(1, 2);
		fun(add);
		
		//你继承什么就是什么，可以new子类对象赋给父类
		Cal cal = new Add(3, 5);
		fun(cal);
		
		//声明称父类的变量cal可以指向new出来的其他子类对象，声明父类new子类 
		
		cal = new Sub(3, 5);
		fun(cal);
		
		cal = new Div(3, 5);
		fun(cal);
	}
	
	//形参声明成父类类型不写具体的子类类型，实参可以是任何new出来的子类对象
	//然后可以将子类对象传值
	public void fun(Cal cal) {
		int result = cal.getResult();
		System.out.println(result);
	}

}
